#include <iostream>

using namespace std;

//友元的目的就是让一个函数或者类，访问另一个类中私有成员
//友元的关键字为:friend
//友元的三种实现
//1、全局函数做友元
//2、类做友元
//3、成员函数做友元
class Building;

class GoodGay {
public:
    Building *building;

    GoodGay();//创建建筑物的对象

    void visit();//参观函数 访问Building中的属性

    void visit2();//参观函数 访问Building中的属性

};

class Building {
    //成员函数做友元
    friend void GoodGay::visit();

private:
    string bedRoom;//卧室
public:

    string sittingRoom;//客厅
    Building() {
        this->bedRoom = "卧室";
        this->sittingRoom = "客厅";
    }
};

void test1() {
    GoodGay goodGay;
    goodGay.visit();
    goodGay.visit2();
}

int main() {
    test1();
    return 0;
}

GoodGay::GoodGay() {
    //创建建筑物的对象
    building = new Building;
}

void GoodGay::visit() {//参观函数 访问Building中的属性
    cout << "好朋友1正在访问" << building->sittingRoom << endl;
    cout << "好朋友1正在访问" << building->bedRoom << endl;
}

void GoodGay::visit2() {//参观函数 访问Building中的属性
    cout << "好朋友2正在访问" << building->sittingRoom << endl;
    //cout << "好朋友2正在访问" << building->bedRoom << endl;
}